iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
0

Closure

閉包簡單來說就是一個沒有名字的 Function ,與 Function 同樣是一個獨立的程式區塊,但不同的地方在於,必包可以被當作是參數在程式間傳遞,而 Function 不行

閉包的格式

{(參數) -> 返回執型別 in
    // code
}

這裡寫一個簡單的例子

// 加法
let add = {(_ a: Int, _ b: Int) -> Int in
    return a + b
}

// 減法
let subtract = {(_ a: Int, _ b: Int) -> Int in
    return a - b
}

// 乘法
let multiple = {(_ a: Int, _ b: Int) -> Int in
    return a * b
}

// 除法
let division = {(_ a: Int, _ b: Int) -> Int in
    return a / b
}

// 將參數 calculate 設為一個兩個輸入及一個輸出的閉包
func printResult(_ calculate: (Int, Int) -> Int, _ a: Int, _ b: Int) {
    print(calculate(a,b))
}

printResult(add, 10, 10) // print 20
printResult(substract, 100, 20) // print 80
printResult(multiple, 32, 32) // print 1024
printResult(division, 72, 9) // print 8

雖然在這裡看起來有點多此一舉,但如果今天要做的不是只有計算這麼簡單的事情,閉包就會變得很好用


上一篇
Day24 Local Push Notification
下一篇
Day26 QRCode Scanner
系列文
IOS Beginner's 30days 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言